package siruna.WE.FileManager;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

/**
 * Klasse die de configuratie van een widet afhandelt
 * 
 * @author Tim
 * 
 */
public class WidgetConfig {
	// naam van de widget
	private String name = "";
	// breedte van de widget
	private int width = 0;
	// hoogte van de widget
	private int height = 0;
	// releasedatum van de widget
	private String date = "";
	// beschrijving van de widget
	private String description = "";
	// ontwikkelaar van de widget
	private String author = "";
	// e-mail van de ontwikkelaar van de widget
	private String email = "";
	// link naarde site van de widget
	private String link = "";

	// hulpobject om het resultaat te bepalen
	private StringBuffer result;

	/**
	 * Constructor, op basis van een xml document
	 * 
	 * @param doc
	 *            xlm document
	 */
	public WidgetConfig(Document doc) {
		result = new StringBuffer();
		String hulp = "";
		// alle elementen waarin we geinterresseerd zijn eruit halen.
		NodeList e = doc.getElementsByTagName("widgetname");
		if (e.getLength() != 0) {
			name = e.item(0).getFirstChild().getNodeValue();
			result.append("Name: " + name + "\n");
		}
		e = doc.getElementsByTagName("width");
		if (e.getLength() != 0) {
			hulp = e.item(0).getFirstChild().getNodeValue();
			width = Integer.parseInt(hulp);
			result.append("Width: " + width + "\n");
		}
		e = doc.getElementsByTagName("height");
		if (e.getLength() != 0) {
			hulp = e.item(0).getFirstChild().getNodeValue();
			height = Integer.parseInt(hulp);
			result.append("Height: " + height + "\n");
		}
		e = doc.getElementsByTagName("author");
		if (e.getLength() != 0) {
			author = e.item(0).getFirstChild().getNodeValue();
			result.append("Author: " + author + "\n");
		}
		e = doc.getElementsByTagName("email");
		if (e.getLength() != 0) {
			email = e.item(0).getFirstChild().getNodeValue();
			result.append("E-mail: " + email + "\n");
		}
		e = doc.getElementsByTagName("link");
		if (e.getLength() != 0) {
			link = e.item(0).getFirstChild().getNodeValue();
			result.append("Link: " + link + "\n");
		}
		e = doc.getElementsByTagName("date");
		if (e.getLength() != 0) {
			date = e.item(0).getFirstChild().getNodeValue();
			result.append("Date: " + date + "\n");
		}
		e = doc.getElementsByTagName("description");
		if (e.getLength() != 0) {
			description = e.item(0).getFirstChild().getNodeValue();
			result.append("Description: " + description + "\n");
		}
	}

	/**
	 * getter van de datum
	 * 
	 * @return de datum
	 */
	public String getDate() {
		return date;
	}

	/**
	 * setter van de datum
	 * 
	 * @param date
	 *            de nieuwe datum
	 */

	public void setDate(String date) {
		this.date = date;
	}

	/**
	 * getter van de descriptie
	 * 
	 * @return de descriptie
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * setter van de descriptie
	 * 
	 * @param description
	 *            de nieuwe descriptie
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * getter van de auteur
	 * 
	 * @return de auteur
	 */
	public String getAuthor() {
		return author;
	}

	/**
	 * setter van de auteur
	 * 
	 * @param author
	 *            de nieuwe auteur
	 */
	public void setAuthor(String author) {
		this.author = author;
	}

	/**
	 * getter van de e-mail
	 * 
	 * @return de e-mail
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * setter van de email
	 * 
	 * @param email
	 *            de nieuwe email
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * getter van de link
	 * 
	 * @return de link
	 */
	public String getLink() {
		return link;
	}

	/**
	 * setter van de link
	 * 
	 * @param link
	 *            de nieuwe link
	 */

	public void setLink(String link) {
		this.link = link;
	}

	/**
	 * getter van de naam
	 * 
	 * @return de naam
	 */
	public String getName() {
		return name;
	}

	/**
	 * setter van de naam
	 * 
	 * @param name
	 *            de nieuwe naam
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * getter van de breedte
	 * 
	 * @return de breedte
	 */
	public int getWidth() {
		return width;
	}

	/**
	 * setter van de breedte
	 * 
	 * @param width
	 *            de nieuwe breedte
	 */
	public void setWidth(int width) {
		this.width = width;
	}

	/**
	 * getter van de hoogte
	 * 
	 * @return de hoogte
	 */
	public int getHeight() {
		return height;
	}

	/**
	 * setter van de hoogte
	 * 
	 * @param de
	 *            nieuwe hoogte
	 */
	public void setHeight(int height) {
		this.height = height;
	}

	/**
	 * Methode die de string teruggeeft van de eigenschappen van een widget,
	 * elke eigenschape gescheiden door een newline.
	 */
	@Override
	public String toString() {

		return result.toString();
	}
}
